package com.fjnu.entities;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;


/**
 * 主件表
 */
@JsonIgnoreProperties(value={"hibernateLazyInitializer","handler","fieldHandler"})
@JsonIdentityInfo(
        generator = ObjectIdGenerators.PropertyGenerator.class,
        property = "id",
        scope = MainInstrument.class)
public class MainInstrument implements java.io.Serializable {

	// Fields
   
	private Integer id;
	private Unit unit;
	private String instrumentNum;
	private String classificationNum;
	private String instrumentName;
	private String model;
	private String specification;
	private Float unitPrice;
	private String factory;
	private String leaveFactoryNum;
	private Date leaveFactoryDate;
	private Date purchaseDate;
	private ReserveLand reserveland;
	
	public ReserveLand getReserveland() {
		return reserveland;
	}

	public void setReserveland(ReserveLand reserveland) {
		this.reserveland = reserveland;
	}
	
	public static String GOOD = "正常";
	public static String BORROW = "借出";
	public static String Repair = "待修";
	public static String DEAD = "报废";
	private String statusQuo;
	private String fundSubject;
	private String useDirecton;
	private String instrumentSourse;
	private String procurementMethods;
	private String recipientsPerson;
	private String handlePerson;
	private String chargePerson;
	private Date inStorageTime;
	private String remark;
	private String gbClassificationNum;
	private String gbClassificationName;
	private String financialVouchers;
	private String billsNum;
	private String equipmentNum;
	private String varcharOne;
	private String varcharTwo;
	private Float numOne;
	private Float numTwo;
	private Date dateOne;
	private Date dateTwo;
	private String codeOne;
	private String codeTwo;
	private String picFile;
	private String picName;
	private String picFileOne;
	private String picFileTwo;
	private String picNameOne;
	private String picNameTwo;
	private String gbCode;
	private Integer enclosureNum;
	private Float enclosureAllPrice;
	private String examine;
	private User inputPerson;
	private Date inputTime;
	private Date changeDate;
	private String manageLevel;
	private String checkWay;
	private Date checkDate;
	private String checkWrong;
	private String financialAudit;
	private Date financialAuditTime;
	private String financialAuditPerson;
	private String firstExamine;
	private String firstExaminePerson;
	private Date firstExamineTime;
	private String schoolArea;
	private Date warrantyPeriod;
	private String depreciationWay;
	private Float allDepreciationPrice;
	private Float depreciationNum;
	private Float clearNum;
	private String handleWay;
	private Integer financialClassId;
	private Integer financialBigclassId;
	private String measurementUnit;
	private Float usePeriod;
	private String receptionSupervisor;
	private String acquisitionUnit;
	private String modifyMark;
	private String supplier;
	private Set expensiveInstrumentYearuses = new HashSet(0);
	private BaseRepair baseRepair;
	private Set<EnclosureInstrument> enclosureInstruments;
	private Borrow borrow;
	// Constructors

	/** default constructor */
	public MainInstrument() {
	}

	/** minimal constructor */
	public MainInstrument(Integer id) {
		this.id = id;
	}

	/** full constructor */

	

	public MainInstrument(Integer id, Unit unit, String instrumentNum, String classificationNum, String instrumentName,
			String model, String specification, Float unitPrice, String factory, String leaveFactoryNum,
			Date leaveFactoryDate, Date purchaseDate, ReserveLand reserveland, String statusQuo, String fundSubject,
			String useDirecton, String instrumentSourse, String procurementMethods, String recipientsPerson,
			String handlePerson, String chargePerson, Date inStorageTime, String remark, String gbClassificationNum,
			String gbClassificationName, String financialVouchers, String billsNum, String equipmentNum,
			String varcharOne, String varcharTwo, Float numOne, Float numTwo, Date dateOne, Date dateTwo,
			String codeOne, String codeTwo, String picFile, String picName, String picFileOne, String picFileTwo,
			String picNameOne, String picNameTwo, String gbCode, Integer enclosureNum, Float enclosureAllPrice,
			String examine, User inputPerson, Date inputTime, Date changeDate, String manageLevel, String checkWay,
			Date checkDate, String checkWrong, String financialAudit, Date financialAuditTime,
			String financialAuditPerson, String firstExamine, String firstExaminePerson, Date firstExamineTime,
			String schoolArea, Date warrantyPeriod, String depreciationWay, Float allDepreciationPrice,
			Float depreciationNum, Float clearNum, String handleWay, Integer financialClassId,
			Integer financialBigclassId, String measurementUnit, Float usePeriod, String receptionSupervisor,
			String acquisitionUnit, String modifyMark, String supplier, Set expensiveInstrumentYearuses,BaseRepair baseRepair,
			Set<EnclosureInstrument> enclosureInstruments,Borrow borrow) {
		super();
		this.id = id;
		this.unit = unit;
		this.instrumentNum = instrumentNum;
		this.classificationNum = classificationNum;
		this.instrumentName = instrumentName;
		this.model = model;
		this.specification = specification;
		this.unitPrice = unitPrice;
		this.factory = factory;
		this.leaveFactoryNum = leaveFactoryNum;
		this.leaveFactoryDate = leaveFactoryDate;
		this.purchaseDate = purchaseDate;
		this.reserveland = reserveland;
		this.statusQuo = statusQuo;
		this.fundSubject = fundSubject;
		this.useDirecton = useDirecton;
		this.instrumentSourse = instrumentSourse;
		this.procurementMethods = procurementMethods;
		this.recipientsPerson = recipientsPerson;
		this.handlePerson = handlePerson;
		this.chargePerson = chargePerson;
		this.inStorageTime = inStorageTime;
		this.remark = remark;
		this.gbClassificationNum = gbClassificationNum;
		this.gbClassificationName = gbClassificationName;
		this.financialVouchers = financialVouchers;
		this.billsNum = billsNum;
		this.equipmentNum = equipmentNum;
		this.varcharOne = varcharOne;
		this.varcharTwo = varcharTwo;
		this.numOne = numOne;
		this.numTwo = numTwo;
		this.dateOne = dateOne;
		this.dateTwo = dateTwo;
		this.codeOne = codeOne;
		this.codeTwo = codeTwo;
		this.picFile = picFile;
		this.picName = picName;
		this.picFileOne = picFileOne;
		this.picFileTwo = picFileTwo;
		this.picNameOne = picNameOne;
		this.picNameTwo = picNameTwo;
		this.gbCode = gbCode;
		this.enclosureNum = enclosureNum;
		this.enclosureAllPrice = enclosureAllPrice;
		this.examine = examine;
		this.setInputPerson(inputPerson);
		this.inputTime = inputTime;
		this.changeDate = changeDate;
		this.manageLevel = manageLevel;
		this.checkWay = checkWay;
		this.checkDate = checkDate;
		this.checkWrong = checkWrong;
		this.financialAudit = financialAudit;
		this.financialAuditTime = financialAuditTime;
		this.financialAuditPerson = financialAuditPerson;
		this.firstExamine = firstExamine;
		this.firstExaminePerson = firstExaminePerson;
		this.firstExamineTime = firstExamineTime;
		this.schoolArea = schoolArea;
		this.warrantyPeriod = warrantyPeriod;
		this.depreciationWay = depreciationWay;
		this.allDepreciationPrice = allDepreciationPrice;
		this.depreciationNum = depreciationNum;
		this.clearNum = clearNum;
		this.handleWay = handleWay;
		this.financialClassId = financialClassId;
		this.financialBigclassId = financialBigclassId;
		this.measurementUnit = measurementUnit;
		this.usePeriod = usePeriod;
		this.receptionSupervisor = receptionSupervisor;
		this.acquisitionUnit = acquisitionUnit;
		this.modifyMark = modifyMark;
		this.supplier = supplier;
		this.expensiveInstrumentYearuses = expensiveInstrumentYearuses;
		this.baseRepair=baseRepair;
		this.enclosureInstruments=enclosureInstruments;
		this.borrow=borrow;
	}
	// Property accessors
		public Integer getId() {
			return this.id;
		}
	public void setId(Integer id) {
		this.id = id;
	}
	
	public Unit getUnit() {
		return this.unit;
	}

	public void setUnit(Unit unit) {
		this.unit = unit;
	}

	public String getInstrumentNum() {
		return this.instrumentNum;
	}

	public void setInstrumentNum(String instrumentNum) {
		this.instrumentNum = instrumentNum;
	}

	public String getClassificationNum() {
		return this.classificationNum;
	}

	public void setClassificationNum(String classificationNum) {
		this.classificationNum = classificationNum;
	}

	public String getInstrumentName() {
		return this.instrumentName;
	}

	public void setInstrumentName(String instrumentName) {
		this.instrumentName = instrumentName;
	}

	public String getModel() {
		return this.model;
	}

	public void setModel(String model) {
		this.model = model;
	}

	public String getSpecification() {
		return this.specification;
	}

	public void setSpecification(String specification) {
		this.specification = specification;
	}

	public Float getUnitPrice() {
		return this.unitPrice;
	}

	public void setUnitPrice(Float unitPrice) {
		this.unitPrice = unitPrice;
	}

	public String getFactory() {
		return this.factory;
	}

	public void setFactory(String factory) {
		this.factory = factory;
	}

	public String getLeaveFactoryNum() {
		return this.leaveFactoryNum;
	}

	public void setLeaveFactoryNum(String leaveFactoryNum) {
		this.leaveFactoryNum = leaveFactoryNum;
	}

	public Date getLeaveFactoryDate() {
		return this.leaveFactoryDate;
	}

	public void setLeaveFactoryDate(Date leaveFactoryDate) {
		this.leaveFactoryDate = leaveFactoryDate;
	}

	public Date getPurchaseDate() {
		return this.purchaseDate;
	}

	public void setPurchaseDate(Date purchaseDate) {
		this.purchaseDate = purchaseDate;
	}

	public String getStatusQuo() {
		return this.statusQuo;
	}

	public void setStatusQuo(String statusQuo) {
		this.statusQuo = statusQuo;
	}

	public String getFundSubject() {
		return this.fundSubject;
	}

	public void setFundSubject(String fundSubject) {
		this.fundSubject = fundSubject;
	}

	public String getUseDirecton() {
		return this.useDirecton;
	}

	public void setUseDirecton(String useDirecton) {
		this.useDirecton = useDirecton;
	}

	public String getInstrumentSourse() {
		return this.instrumentSourse;
	}

	public void setInstrumentSourse(String instrumentSourse) {
		this.instrumentSourse = instrumentSourse;
	}

	public String getProcurementMethods() {
		return this.procurementMethods;
	}

	public void setProcurementMethods(String procurementMethods) {
		this.procurementMethods = procurementMethods;
	}

	public String getRecipientsPerson() {
		return this.recipientsPerson;
	}

	public void setRecipientsPerson(String recipientsPerson) {
		this.recipientsPerson = recipientsPerson;
	}

	public String getHandlePerson() {
		return this.handlePerson;
	}

	public void setHandlePerson(String handlePerson) {
		this.handlePerson = handlePerson;
	}

	public String getChargePerson() {
		return this.chargePerson;
	}

	public void setChargePerson(String chargePerson) {
		this.chargePerson = chargePerson;
	}

	public Date getInStorageTime() {
		return this.inStorageTime;
	}

	public void setInStorageTime(Date inStorageTime) {
		this.inStorageTime = inStorageTime;
	}

	public String getRemark() {
		return this.remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public String getGbClassificationNum() {
		return this.gbClassificationNum;
	}

	public void setGbClassificationNum(String gbClassificationNum) {
		this.gbClassificationNum = gbClassificationNum;
	}

	public String getGbClassificationName() {
		return this.gbClassificationName;
	}

	public void setGbClassificationName(String gbClassificationName) {
		this.gbClassificationName = gbClassificationName;
	}

	public String getFinancialVouchers() {
		return this.financialVouchers;
	}

	public void setFinancialVouchers(String financialVouchers) {
		this.financialVouchers = financialVouchers;
	}

	public String getBillsNum() {
		return this.billsNum;
	}

	public void setBillsNum(String billsNum) {
		this.billsNum = billsNum;
	}

	public String getEquipmentNum() {
		return this.equipmentNum;
	}

	public void setEquipmentNum(String equipmentNum) {
		this.equipmentNum = equipmentNum;
	}

	public String getVarcharOne() {
		return this.varcharOne;
	}

	public void setVarcharOne(String varcharOne) {
		this.varcharOne = varcharOne;
	}

	public String getVarcharTwo() {
		return this.varcharTwo;
	}

	public void setVarcharTwo(String varcharTwo) {
		this.varcharTwo = varcharTwo;
	}

	public Float getNumOne() {
		return this.numOne;
	}

	public void setNumOne(Float numOne) {
		this.numOne = numOne;
	}

	public Float getNumTwo() {
		return this.numTwo;
	}

	public void setNumTwo(Float numTwo) {
		this.numTwo = numTwo;
	}

	public Date getDateOne() {
		return this.dateOne;
	}

	public void setDateOne(Date dateOne) {
		this.dateOne = dateOne;
	}

	public Date getDateTwo() {
		return this.dateTwo;
	}

	public void setDateTwo(Date dateTwo) {
		this.dateTwo = dateTwo;
	}

	public String getCodeOne() {
		return this.codeOne;
	}

	public void setCodeOne(String codeOne) {
		this.codeOne = codeOne;
	}

	public String getCodeTwo() {
		return this.codeTwo;
	}

	public void setCodeTwo(String codeTwo) {
		this.codeTwo = codeTwo;
	}

	public String getPicFile() {
		return this.picFile;
	}

	public void setPicFile(String picFile) {
		this.picFile = picFile;
	}

	public String getPicName() {
		return this.picName;
	}

	public void setPicName(String picName) {
		this.picName = picName;
	}

	public String getPicFileOne() {
		return this.picFileOne;
	}

	public void setPicFileOne(String picFileOne) {
		this.picFileOne = picFileOne;
	}

	public String getPicFileTwo() {
		return this.picFileTwo;
	}

	public void setPicFileTwo(String picFileTwo) {
		this.picFileTwo = picFileTwo;
	}

	public String getPicNameOne() {
		return this.picNameOne;
	}

	public void setPicNameOne(String picNameOne) {
		this.picNameOne = picNameOne;
	}

	public String getPicNameTwo() {
		return this.picNameTwo;
	}

	public void setPicNameTwo(String picNameTwo) {
		this.picNameTwo = picNameTwo;
	}

	public String getGbCode() {
		return this.gbCode;
	}

	public void setGbCode(String gbCode) {
		this.gbCode = gbCode;
	}

	public Integer getEnclosureNum() {
		return this.enclosureNum;
	}

	public void setEnclosureNum(Integer enclosureNum) {
		this.enclosureNum = enclosureNum;
	}

	public Float getEnclosureAllPrice() {
		return this.enclosureAllPrice;
	}

	public void setEnclosureAllPrice(Float enclosureAllPrice) {
		this.enclosureAllPrice = enclosureAllPrice;
	}

	public String getExamine() {
		return this.examine;
	}

	public void setExamine(String examine) {
		this.examine = examine;
	}


	public Date getInputTime() {
		return this.inputTime;
	}

	public void setInputTime(Date inputTime) {
		this.inputTime = inputTime;
	}

	public Date getChangeDate() {
		return this.changeDate;
	}

	public void setChangeDate(Date changeDate) {
		this.changeDate = changeDate;
	}

	public String getManageLevel() {
		return this.manageLevel;
	}

	public void setManageLevel(String manageLevel) {
		this.manageLevel = manageLevel;
	}

	public String getCheckWay() {
		return this.checkWay;
	}

	public void setCheckWay(String checkWay) {
		this.checkWay = checkWay;
	}

	public Date getCheckDate() {
		return this.checkDate;
	}

	public void setCheckDate(Date checkDate) {
		this.checkDate = checkDate;
	}

	public String getCheckWrong() {
		return this.checkWrong;
	}

	public void setCheckWrong(String checkWrong) {
		this.checkWrong = checkWrong;
	}

	public String getFinancialAudit() {
		return this.financialAudit;
	}

	public void setFinancialAudit(String financialAudit) {
		this.financialAudit = financialAudit;
	}

	public Date getFinancialAuditTime() {
		return this.financialAuditTime;
	}

	public void setFinancialAuditTime(Date financialAuditTime) {
		this.financialAuditTime = financialAuditTime;
	}

	public String getFinancialAuditPerson() {
		return this.financialAuditPerson;
	}

	public void setFinancialAuditPerson(String financialAuditPerson) {
		this.financialAuditPerson = financialAuditPerson;
	}

	public String getFirstExamine() {
		return this.firstExamine;
	}

	public void setFirstExamine(String firstExamine) {
		this.firstExamine = firstExamine;
	}

	public String getFirstExaminePerson() {
		return this.firstExaminePerson;
	}

	public void setFirstExaminePerson(String firstExaminePerson) {
		this.firstExaminePerson = firstExaminePerson;
	}

	public Date getFirstExamineTime() {
		return this.firstExamineTime;
	}

	public void setFirstExamineTime(Date firstExamineTime) {
		this.firstExamineTime = firstExamineTime;
	}

	public String getSchoolArea() {
		return this.schoolArea;
	}

	public void setSchoolArea(String schoolArea) {
		this.schoolArea = schoolArea;
	}

	public Date getWarrantyPeriod() {
		return this.warrantyPeriod;
	}

	public void setWarrantyPeriod(Date warrantyPeriod) {
		this.warrantyPeriod = warrantyPeriod;
	}

	public String getDepreciationWay() {
		return this.depreciationWay;
	}

	public void setDepreciationWay(String depreciationWay) {
		this.depreciationWay = depreciationWay;
	}

	public Float getAllDepreciationPrice() {
		return this.allDepreciationPrice;
	}

	public void setAllDepreciationPrice(Float allDepreciationPrice) {
		this.allDepreciationPrice = allDepreciationPrice;
	}

	public Float getDepreciationNum() {
		return this.depreciationNum;
	}

	public void setDepreciationNum(Float depreciationNum) {
		this.depreciationNum = depreciationNum;
	}

	public Float getClearNum() {
		return this.clearNum;
	}

	public void setClearNum(Float clearNum) {
		this.clearNum = clearNum;
	}

	public String getHandleWay() {
		return this.handleWay;
	}

	public void setHandleWay(String handleWay) {
		this.handleWay = handleWay;
	}

	public Integer getFinancialClassId() {
		return this.financialClassId;
	}

	public void setFinancialClassId(Integer financialClassId) {
		this.financialClassId = financialClassId;
	}

	public Integer getFinancialBigclassId() {
		return this.financialBigclassId;
	}

	public void setFinancialBigclassId(Integer financialBigclassId) {
		this.financialBigclassId = financialBigclassId;
	}

	public String getMeasurementUnit() {
		return this.measurementUnit;
	}

	public void setMeasurementUnit(String measurementUnit) {
		this.measurementUnit = measurementUnit;
	}

	public Float getUsePeriod() {
		return this.usePeriod;
	}

	public void setUsePeriod(Float usePeriod) {
		this.usePeriod = usePeriod;
	}

	public String getReceptionSupervisor() {
		return this.receptionSupervisor;
	}

	public void setReceptionSupervisor(String receptionSupervisor) {
		this.receptionSupervisor = receptionSupervisor;
	}

	public String getAcquisitionUnit() {
		return this.acquisitionUnit;
	}

	public void setAcquisitionUnit(String acquisitionUnit) {
		this.acquisitionUnit = acquisitionUnit;
	}

	public String getModifyMark() {
		return this.modifyMark;
	}

	public void setModifyMark(String modifyMark) {
		this.modifyMark = modifyMark;
	}

	public String getSupplier() {
		return this.supplier;
	}

	public void setSupplier(String supplier) {
		this.supplier = supplier;
	}

	public Set getExpensiveInstrumentYearuses() {
		return this.expensiveInstrumentYearuses;
	}

	public void setExpensiveInstrumentYearuses(Set expensiveInstrumentYearuses) {
		this.expensiveInstrumentYearuses = expensiveInstrumentYearuses;
	}

	public BaseRepair getBaseRepair() {
		return baseRepair;
	}

	public void setBaseRepair(BaseRepair baseRepair) {
		this.baseRepair = baseRepair;
	}

	public User getInputPerson() {
		return inputPerson;
	}

	public void setInputPerson(User inputPerson) {
		this.inputPerson = inputPerson;
	}

	public Set<EnclosureInstrument> getEnclosureInstruments() {
		return enclosureInstruments;
	}

	public void setEnclosureInstruments(Set<EnclosureInstrument> enclosureInstruments) {
		this.enclosureInstruments = enclosureInstruments;
	}

	public Borrow getBorrow() {
		return borrow;
	}

	public void setBorrow(Borrow borrow) {
		this.borrow = borrow;
	}

}